package com.dingwen.treasure.kettle.dto.query;

import com.dingwen.treasure.kettle.base.convert.model.impl.AbstractBeanConvertImpl;
import com.dingwen.treasure.kettle.entity.TaskInfo;
import com.dingwen.treasure.kettle.enums.FileTypeEnum;
import com.dingwen.treasure.kettle.enums.TaskTypeEnum;
import com.dingwen.treasure.kettle.vo.TaskInfoVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * 　TaskInfoDto
 * 　@author dingwen
 * 　@date 2022/8/22
 */
@ApiModel(value = "TaskInfoQueryDto", description = "任务信息数据传输对象-查询")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class TaskInfoQueryDto extends AbstractBeanConvertImpl<TaskInfo, TaskInfoQueryDto, TaskInfoVo> {

    @ApiModelProperty(value = "任务名称")
    private String taskName;

    @ApiModelProperty(value = "任务Id")
    private Long taskId;

    @ApiModelProperty(value = "任务类型：1一次性任务 2周期性任务")
    private TaskTypeEnum taskType;

    @ApiModelProperty(value = "文件Id")
    private String fileId;

    @ApiModelProperty(value = "文件类型")
    private List<FileTypeEnum> fileTypes;

    @ApiModelProperty(value = "当前页")
    private Integer current;

    @ApiModelProperty(value = "页面大小")
    private Integer pageSize;

    /**
     * 任务code标识
     */
    @ApiModelProperty(value = " 任务code标识")
    private String taskCode;

    /**
     * cron表达式
     */
    @ApiModelProperty(value = "cron表达式")
    private String cronExpression;

    /**
     * 任务执行类 全类名，Job类
     */
    @ApiModelProperty(value = " 任务执行类 全类名，Job类")
    private String fullClassName;

    /**
     * jobDataMap json格式
     */
    @ApiModelProperty(value = " jobDataMap json格式")
    private String jobDataMap;

    /**
     *  job组名称
     */
    @ApiModelProperty(value = "job组名称")
    private String jobGroupName;

    /**
     * job 名称
     */
    @ApiModelProperty(value = "job 名称")
    private String jobName;

    /**
     * 触发器组名称
     */
    @ApiModelProperty(value = " 触发器组名称")
    private String triggerGroupName;

    /**
     * 触发器名称
     */
    @ApiModelProperty(value = "触发器名称")
    private String triggerName;


    /**
     * 文件类型：1作业 2转换
     */
    @ApiModelProperty(value = "文件类型：1作业 2转换")
    private FileTypeEnum fileType;


}
